package org.zjx.data.screen;

import org.zjx.command.entity.screen.*;
import org.zjx.command.enums.TeleportType;
import org.zjx.data.BaseSceneBuilder;

import java.awt.*;

public class HuaGuoShanSceneBuilder extends BaseSceneBuilder {

    @Override
    protected String getSceneName() {
        return "花果山";
    }

    @Override
    protected Dimension getSceneSize() {
        return new Dimension(159, 119);
    }

    @Override
    protected void addMonsters() {

    }

    @Override
    protected void addNpcs() {
        addNpc("花果山土地", new Point(28, 98));
        addNpc("老马猴", new Point(37, 45));
        addNpc("侯医仙", new Point(133, 78));
        addNpc("马猴", new Point(100, 5));
        addNpc("美猴王", new Point(78, 110));
    }

    @Override
    protected void addRooms() {
        Room shuiLianDong = createRoom("水帘洞", new Dimension(89, 67));
        addNpcToRoom(shuiLianDong, "美猴王", new Point(66, 43));
        rooms.add(shuiLianDong);
    }

    @Override
    protected void addTeleports() {
        // 场景传送点
        addSceneTeleport(new Point(10, 10), "傲来国", new Point(210, 138), new Point(3, 7));
        addSceneTeleport(new Point(145, 14), "幻境花果山", new Point(14, 98), new Point(146, 14));
        addSceneTeleport(new Point(59, 69), "水帘洞", new Point(7, 19), new Point(62, 72));

        // NPC传送点
        addNpcTeleport("花果山土地", new Point(105, 5), "海底迷宫一层", new Point(30, 26), new Point(100, 5));

        // 房间入口传送点
        addRoomTeleport(new Point(59, 69), "水帘洞", new Point(7, 19), new Point(62, 72));
    }

    public static void main(String[] args) {
        new HuaGuoShanSceneBuilder().execute("huaguoshan_scene.json", "花果山");
    }
}